/* * Copyright 2009 Mark Renouf * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHDIR * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.nextgen.websocket.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.ErrorEvent; import com.google.gwt.event.dom.client.ErrorHandler; import com.google.gwt.nextgen.websocket.client.event.CloseEvent; import com.google.gwt.nextgen.websocket.client.event.CloseHandler; import com.google.gwt.nextgen.websocket.client.event.MessageEvent; import com.google.gwt.nextgen.websocket.client.event.MessageHandler; import com.google.gwt.nextgen.websocket.client.event.OpenEvent; import com.google.gwt.nextgen.websocket.client.event.OpenHandler; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.TextArea; import com.google.gwt.user.client.ui.TextBox; public class WebSocketDemo implements EntryPoint { public void onModuleLoad() { final WebSocket socket = new WebSocket("ws://echo.websocket.org/"); final TextArea box = new TextArea(); socket.addOpenHandler(new OpenHandler() { @Override public void onOpen(OpenEvent event) { Window.alert("Open: " + event); } }); socket.addMessageHandler(new MessageHandler() { @Override public void onMessage(MessageEvent event) { box.setText(box.getValue() + "\n" + event.getData()); } }); socket.addErrorHandler(new ErrorHandler() { @Override public void onError(ErrorEvent event) { GWT.log("Error: " + event); } }); socket.addCloseHandler(new CloseHandler() { @Override public void onClose(CloseEvent event) { GWT.log("Close: " + event); } }); final TextBox line = new TextBox(); Button send = new Button("SEND"); send.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { socket.send(line.getText()); line.setText(""); } }); HorizontalPanel lp = new HorizontalPanel(); lp.add(line); lp.add(send); RootPanel.get().add(box); RootPanel.get().add(lp); RootPanel.get().add(send); } }